# 5G PCIe 网卡 ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- **Quectel Pi M2** 板载一路 **PCIe** 接口(RK3576 PCIe0,位于 `2a200000.pcie`),通过 M.2 插槽对外引出,可用于连接 5G PCIe 模组。本文说明硬件连接、模组模式配置、PCIe/MHI 识别、拨号上网和网络连通性验证流程。H1 参考文档以 RM520N-GL 为例,M2 当前 ADB 实测设备识别为 Quectel EM120R-GL LTE Modem,文中的“实测输出”为本次 M2 采集结果。 > 💡 M.2 插槽同一时刻只能接入一个 PCIe 设备,5G 模组与 NVMe SSD 二选一,不可同时使用。切换设备前请先正常关机并断电,再更换 M.2 设备后重新上电。 ## 硬件接口及准备 开始操作前,请确认已准备好以下硬件:Quectel Pi M2 主控板、RM520N-GL PCIe 网卡、PCIe 转接线、Type-C-to-Type-A USB 数据线、5G 天线和有效 SIM 卡。初次配置模组时,需要通过模块或转接板的 USB AT 端口连接 Windows PC,用于发送 AT 指令。 ```{image} images/image_NjeHbCpMJor8wcxUSPpcSeKYnEg.webp :width: 1155px :height: 771px :align: center ``` ## 快速开始 ### 连接硬件 1. 将 RM520N-GL PCIe 网卡转接线均匀插入主控板 PCIe 接口。 2. 从两侧向下推动 PCIe 接口固定支架,确认转接线牢固固定到位。 3. 安装 5G 天线,并插入有效 SIM 卡。 4. 使用 Type-C-to-Type-A USB 数据线连接 5G 模组或转接板的 USB 口到 Windows PC。初次使用可能需要安装模块 USB 驱动,驱动文件请按实际模块型号获取。 5. 完成模组模式配置后,断开 PC 端 USB 线,重新给主控板上电。 ## 功能使用 ### PCIe 模块配置 #### 连接 AT 端口 使用 PCIe 直通转接卡时,必须先把 5G 模组设置为 PCIe-EP 模式,否则无法与主控板的 PCIe 接口通信。连接 USB AT 端口后,在 Windows PC 的设备管理器中找到 **Quectel USB AT Port (COMxxx)**,再使用串口工具打开该 AT 端口。 #### 执行配置命令 在 AT 端口中依次执行以下命令: ```plaintext AT+QCFG="data_interface",1,0 AT+QCFG="pcie/mode",0 AT+QCFG="usbnet",2 AT+CFUN=1,1 ``` 正常返回示例: ```plaintext AT+QCFG="data_interface",1,0 OK AT+QCFG="pcie/mode",0 OK AT+QCFG="usbnet",2 OK AT+CFUN=1,1 OK ``` 命令执行完成后,等待模组重启生效,断开 PC 端 USB 连接,并重新给主控板上电。 #### 验证 PCIe 设备识别情况 进入 Linux 系统后,先检查 PCIe 总线设备、MHI 设备节点和数据网卡是否正常生成。 ```shell # 检查 PCIe 总线设备识别情况 lspci # 检查 MHI 调制解调器接口 ls /dev/mhi* # 检查数据网卡 ls /sys/class/net | grep rmnet ``` M2 实测输出: ```plaintext root@linaro-alip:~# lspci 00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3576 (rev 01) 01:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc SDX62 [Snapdragon X62 5G] root@linaro-alip:~# find /sys/bus/pci/devices -maxdepth 1 -mindepth 1 -printf "%f\n" 0000:01:00.0 0000:00:00.0 root@linaro-alip:~# ls /dev/mhi* /dev/mhi_BHI /dev/mhi_DIAG /dev/mhi_DUN /dev/mhi_LOOPBACK /dev/mhi_QMI0 root@linaro-alip:~# ls /sys/class/net | grep rmnet rmnet_mhi0 rmnet_mhi0.1 ``` 内核日志关键输出: ```plaintext [ 297.193333] rk-pcie 2a200000.pcie: PCIe Link up, LTSSM is 0x130011 [ 297.193341] rk-pcie 2a200000.pcie: PCIe Gen.2 x1 link up [ 297.205513] mhi_pci_probe pci_dev->name = 0000:01:00.0, domain=0, bus=1, slot=0, vendor=17CB, device=0308 [ 297.215019] [I][mhi0][mhi_pci_show_link] LnkCap: Speed 16GT/s, Width x2 [ 297.215021] [I][mhi0][mhi_pci_show_link] LnkSta: Speed 5GT/s, Width x1 [ 297.230051] [I][mhi0][mhi_pm_st_worker] Transition to state:MISSION MODE [ 297.258869] rmnet_vnd_register_device(rmnet_mhi0.1)=0 ``` M2 当前实测结果如下:PCIe 设备已枚举,`lspci` 可识别到 RK3576 PCI bridge 和 Qualcomm SDX62 5G 设备;`/dev/mhi*` 节点已生成,数据网卡 `rmnet_mhi0`、`rmnet_mhi0.1` 已生成。内核日志显示 PCIe Gen2 x1 link up,MHI 进入 Mission Mode。 ### 拨号上网 #### 拨号前准备 拨号前请确认 5G 天线已连接、SIM 卡已插入且状态正常,现场网络信号满足注网要求。信号较差或 SIM 卡异常会导致注网失败或拨号后无法获取 IP。 ```{image} images/image_BuEcbBeCeomGQDxPznocrcYgnxh.webp :width: 658px :height: 477px :align: center ``` #### 使用 quectel-CM 拨号 后台运行 `quectel-CM` 执行拨号: ```shell quectel-CM & ``` 当日志中出现 `SIM_READY`、`PS: Attached`、`DataCap: 5G_SA` 或运营商网络类型,并且 `udhcpc` 获取到 IP 地址时,表示设备已成功获得基站分配的 IP,网络连接建立成功。 M2 实测输出: ```plaintext root@linaro-alip:~# quectel-CM & [04-13_21:51:02:574] QConnectManager_Linux_V1.6.4 [04-13_21:51:02:575] netcard driver = pcie_mhi, driver version = V1.3.7 [04-13_21:51:02:575] qmap_mode = 1, qmap_version = 9, qmap_size = 15360, muxid = 0x81, qmap_netcard = rmnet_mhi0.1 [04-13_21:51:02:575] Modem works in QMI mode [04-13_21:51:15:237] requestBaseBandVersion RM520NGLAAR03A04M4G [04-13_21:51:15:256] requestGetSIMStatus SIMStatus: SIM_READY [04-13_21:51:15:260] requestGetProfile[1] ///0/IPV4V6 [04-13_21:51:15:265] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: 5G_SA [04-13_21:51:15:268] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED [04-13_21:51:15:623] requestSetupDataCall WdsConnectionIPv4Handle: 0xe2b2aae0 [04-13_21:51:15:641] ip link set dev rmnet_mhi0 up [04-13_21:51:15:646] ip link set dev rmnet_mhi0.1 up [04-13_21:51:15:655] busybox udhcpc -f -n -q -t 5 -i rmnet_mhi0.1 udhcpc: started, v1.37.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 10.72.183.243, server 10.72.183.244 udhcpc: lease of 10.72.183.243 obtained from 10.72.183.244, lease time 7200 [04-13_21:51:15:713] ip -4 address add 10.72.183.243/29 dev rmnet_mhi0.1 [04-13_21:51:15:719] ip -4 route add default via 10.72.183.244 dev rmnet_mhi0.1 ``` 本次插入有效 SIM 卡后复测,`quectel-CM` 可正常识别 QMI 模式,SIM 状态为 `SIM_READY`,网络注册状态为 `PS: Attached`,数据能力为 `5G_SA`,并通过 `udhcpc` 获取到 IPv4 地址 `10.72.183.243`。 #### 验证网络连通性 拨号成功后,查看数据网卡 IP 地址,并通过 ping 验证外网连通性: ```shell # 查看网卡地址 ifconfig rmnet_mhi0.1 ip addr show rmnet_mhi0.1 # 指定 5G 数据网卡 ping 外网 ping -c 4 -I rmnet_mhi0.1 8.8.8.8 ``` M2 实测输出: ```plaintext root@linaro-alip:~# ip -4 addr show dev rmnet_mhi0.1 6: rmnet_mhi0.1: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 altname enx0250f4000001 inet 10.72.183.243/29 scope global rmnet_mhi0.1 valid_lft forever preferred_lft forever root@linaro-alip:~# ip route default via 10.72.183.244 dev rmnet_mhi0.1 10.72.183.240/29 dev rmnet_mhi0.1 proto kernel scope link src 10.72.183.243 root@linaro-alip:~# ping -c 4 -I rmnet_mhi0.1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) from 10.72.183.243 rmnet_mhi0.1: 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=110 time=61.2 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=110 time=60.0 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=110 time=59.0 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=110 time=58.0 ms --- 8.8.8.8 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 58.033/59.562/61.205/1.173 ms ``` 实测结果显示,`rmnet_mhi0.1` 已获取 IPv4 地址 `10.72.183.243/29`,默认路由已指向 `10.72.183.244`,通过 5G 数据网卡 ping `8.8.8.8` 连通,4 包全部收到,丢包率 0%。 ## 异常排查 - 未枚举 PCIe 设备:检查 PCIe 转接线方向和固定支架是否压紧,确认模组已切到 PCIe-EP 模式,断电后重新插拔并上电。 - 没有 `/dev/mhi*`:检查内核 MHI/PCIe 驱动是否加载,查看 `dmesg | grep -Ei "pcie|mhi|rmnet"` 日志。 - 拨号失败或无法获取 IP:检查 SIM 卡、天线、APN、运营商网络覆盖,以及 `quectel-CM` 日志中的 SIM 状态和注网状态。 - 如果插入 SIM 卡后启动阶段出现 `PCIe Link Fail` 且 `lspci` 无输出,优先建议断电重启;调试时也可重新绑定 PCIe 控制器触发枚举:`echo 2a200000.pcie > /sys/bus/platform/drivers/rk-pcie/bind`。 - 需要切换到 NVMe SSD 测试时:先停止拨号、关机断电,再拆下 5G 模组并安装 SSD。